package com.cloudkinto.service.platform.vo.yahoo;

import lombok.Data;

@Data
public class ItemSearchHit {
    private Integer index;
    private String name;
    private String description;
    private String headLine;
    private String url;
    private Boolean inStock;
    private String code;
    private String condition;
    private String imageId;
    private Image image;
    private Review review;
    private Double affiliateRate;
    private Integer price;
    private Integer premiumPrice;
    private Boolean premiumPriceStatus;
    private Integer premiumDiscountRate;
    private String premiumDiscountType;
    private PriceLabel priceLabel;
    private Point point;
    private Shipping shipping;
    private GenreCategory genreCategory;
    private ParentGenreCategories[] parentGenreCategories;
    private Brand brand;
    private ParentBrands[] parentBrands;
    private String janCode;
    private String payment;
    private String releaseDate;
    private Seller seller;
    private Delivery delivery;

    @Data
    public static class Image {
        private String small;
        private String medium;
    }

    @Data
    public static class Review {
        private Integer count;
        private String url;
        private Double rate;
    }

    @Data
    public static class PriceLabel {
        private Boolean taxable;
        private Integer defaultPrice;
        private Integer discountedPrice;
        private Integer fixedPrice;
        private Integer premiumPrice;
        private String periodStart;
        private String periodEnd;
    }

    @Data
    public static class Point {
        private Integer amount;
        private Integer times;
        private Integer bonusAmount;
        private Integer bonusTimes;
        private Integer lyLimitedBonusAmount;
        private Integer lyLimitedBonusTimes;
        private Integer premiumAmount;
        private Integer premiumTimes;
        private Integer premiumBonusAmount;
        private Integer premiumBonusTimes;
        private Integer lyLimitedPremiumBonusAmount;
        private Integer lyLimitedPremiumBonusTimes;
    }

    @Data
    public static class Shipping {
        private Integer code;
        private String name;
    }

    @Data
    public static class GenreCategory {
        private Integer id;
        private String name;
        private Integer depth;
    }

    @Data
    public static class ParentGenreCategories {
        private Integer id;
        private Integer depth;
        private String name;
    }

    @Data
    public static class Brand {
        private Integer id;
        private String name;
    }

    @Data
    public static class ParentBrands {
        private Integer id;
        private String name;
    }

    @Data
    public static class Seller {
        private String sellerId;
        private String name;
        private String url;
        private Boolean isBestSeller;
        private Review review;
        private String imageId;
    }

    @Data
    public static class Delivery {
        private Integer deadLine;
        private Integer day;
        private String area;
    }
}